package com.example.himalaya.view.callback;

import com.ximalaya.ting.android.opensdk.model.track.Track;
import com.ximalaya.ting.android.opensdk.player.service.XmPlayListControl;

import java.util.List;

public interface IPlayerViewCallback {

    /**
     * 开始播放
     */
    void onPlayStart();


    /**
     * 播放暂停
     */
    void onPlayPause();


    /**
     * 播放停止
     */
    void onPlayStop();


    /**
     * 播放错误
     */
    void onPlayError();

    /**
     * 下一首播放
     */
    void nextPlay(Track track);


    /**
     * 上一首播放
     */
    void onPrePlay(Track track);

    /**
     * 播放列表数据加载完成
     *
     * @param list 获取到的数据
     */
    void onListLoaded(List<Track> list);

    /**
     * 播放模式改变了
     *
     * @param playMode 音乐播放模式
     */
    void onPlayModeChange(XmPlayListControl.PlayMode playMode);


    /**
     * 广告正在加载
     */
    void onAdLoading();

    /**
     * 广告加载完成
     */
    void onAdFinished();

    /**
     * 进度条的改变
     *
     * @param currPos 当前位置
     * @param total   全部时长
     */
    void onProgressChange(int currPos, int total);


    /**
     * 更新当前节目的标题
     *
     * @param track 标题
     */
    void onTrackUpdate(Track track, int playIndex);

    /**
     * 通知UI当前是否是逆序显示还是反序
     * @param isReverse 是否顺序
     */
    void updateListOrder(boolean isReverse);
}
